package GUI;

import FilesManagers.CantOpenFileException;
import parser.FunctionSyntacticException;
import parser.ParserConsulta;
import parser.consulta.ConsultaCompuesta;

public class ThreadSearchFirmas extends AbstractThreadManager {

	private String opciones;
	
	public ThreadSearchFirmas(String opciones){
		super();
		this.opciones=opciones;

	}
	
	@Override
	public void run() {
		SearchSignature(opciones);

	}
	
	public void SearchSignature(String palabrasBuscadas){
		if(!signatureFileExiste()){
			System.out.println("No existe ningún archivo de firmas, por favor cree uno primero");
		}
			try {
				if(!palabrasBuscadas.trim().equals("")){
					
					
					try{
						ParserConsulta.validarConsulta(palabrasBuscadas,listaOperandos,listaDelimitadores);
						c = new ConsultaCompuesta("temp/",signatureManager,signatureFile);
						c.setStringConsulta(palabrasBuscadas);
						c.ejecutar();
					}catch(FunctionSyntacticException e){
						System.out.println(palabrasBuscadas+" -> "+e.getMessage());
						}
					String res[]=c.getResultado();
					
					
					System.out.println("ENCONTRADO EN:");
					if(res!=null){
						for(int i=0; i<res.length;i++){
							System.out.println(res[i]);
							
						}
						System.out.println("************************");
					}else{
						System.out.println("Ningun resultado exitoso");
					}
				}else{
					
					System.out.println("La palabra "+palabrasBuscadas/*[j]*/+" es muy general y fue limpiada por los filtros, intente de nuevo");
				}
			} catch (CantOpenFileException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}

}
